home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
gui
/
muibuilderv11.lha
/
muibuilder
/
mb
/
e
/
small
/
Small.e
< prev
next >
Wrap
Text File
|
1994-03-07
|
5KB
|
137 lines
/******************************************************************************
Here is an example of an "environnement file". All you have to do, si to
fill it with :
- use MUIBuilder+GenCodeE to generate the create_app() function
- add the code for your application !!!
******************************************************************************/
OPT OSVERSION=37
/* Module definitions */
MODULE 'muimaster', 'libraries/mui'
MODULE 'utility/tagitem', 'utility/hooks'
MODULE 'intuition/classes', 'intuition/classusr'
/* Error handling */
ENUM NO_LIBRARY, MUI_APPLICATION_FAILURE
RAISE NO_LIBRARY IF OpenLibrary()=NIL,
MUI_APPLICATION_FAILURE IF Mui_NewObjectA()=NIL
/* Constant definitions */
CONST MUI_TRUE = 1
/* Global variables */
/*MUIB*/ DEF app, wi_smallexample, lv_label_0, lv_label_1, bt_ok, bt_cancel
/* Main procedure */
PROC main() HANDLE
DEF signal, result_DoMethod, running = TRUE
muimasterbase := OpenLibrary('muimaster.library', 0)
create_app()
/* Notify : close gadget => end of application */
doMethod( wi_smallexample, [ MUIM_Notify, MUIA_Window_CloseRequest, MUI_TRUE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit ] )
/* Open the window */
set( wi_smallexample, MUIA_Window_Open, MUI_TRUE )
WHILE running
result_DoMethod := doMethod( app, [ MUIM_Application_Input, {signal} ] )
SELECT result_DoMethod
CASE MUIV_Application_ReturnID_Quit
running := FALSE
ENDSELECT
IF (running AND signal) THEN Wait( signal )
ENDWHILE
Mui_DisposeObject( app )
CloseLibrary( muimasterbase )
EXCEPT
SELECT exception
CASE NO_LIBRARY
CASE MUI_APPLICATION_FAILURE
ENDSELECT
ENDPROC
/* Procedure generated by GenCodeE which creates your application */
PROC create_app()
app := ApplicationObject,
MUIA_Application_Author, 'Eric Totel',
MUIA_Application_Base, 'SMALL',
MUIA_Application_Title, 'Small Example',
MUIA_Application_Version, '$VER : Small 1.0',
MUIA_Application_Copyright, '(c) 1993 Eric Totel',
MUIA_Application_Description, 'Here is a small example of MUI-Builder',
MUIA_HelpFile, 'small.guide',
SubWindow, wi_smallexample := WindowObject,
MUIA_Window_Title, 'Small example',
MUIA_HelpNode, 'WI_smallexample',
MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
WindowContents, GroupObject,
Child, GroupObject,
GroupFrameT( 'two lists' ),
MUIA_HelpNode, 'GR_lists',
MUIA_Group_Horiz, MUI_TRUE,
Child, lv_label_0 := ListviewObject,
MUIA_HelpNode, 'LV_label_0',
MUIA_Listview_List, DirlistObject,
InputListFrame,
MUIA_Dirlist_Directory, 'progdir:',
MUIA_Dirlist_DrawersOnly, FALSE,
MUIA_Dirlist_FilesOnly, FALSE,
MUIA_Dirlist_FilterDrawers, FALSE,
MUIA_Dirlist_MultiSelDirs, FALSE,
MUIA_Dirlist_RejectIcons, FALSE,
MUIA_Dirlist_SortDirs, MUIV_Dirlist_SortDirs_First,
MUIA_Dirlist_SortHighLow, FALSE,
MUIA_Dirlist_SortType, 0,
End,
End,
Child, lv_label_1 := ListviewObject,
MUIA_HelpNode, 'LV_label_1',
MUIA_Listview_MultiSelect, MUIV_Listview_MultiSelect_Default,
MUIA_Listview_List, VolumelistObject,
InputListFrame,
End,
End,
End,
Child, GroupObject,
MUIA_HelpNode, 'GR_grp_1',
MUIA_Group_Horiz, MUI_TRUE,
MUIA_Group_SameWidth, MUI_TRUE,
Child, bt_ok := KeyButton( 'OK', "o" ),
Child, bt_cancel := KeyButton( 'Cancel', "c" ),
End,
End,
End,
End
ENDPROC
/* DoMethod() function */
PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
DEF h:PTR TO hook, o:PTR TO object, dispatcher
IF obj
o := obj-SIZEOF object /* instance data is to negative offset */
h := o.class
dispatcher := h.entry /* get dispatcher from hook in iclass */
MOVEA.L h,A0
MOVEA.L msg,A1
MOVEA.L obj,A2 /* probably should use CallHookPkt, but the */
MOVEA.L dispatcher,A3 /* original code (DoMethodA()) doesn't. */
JSR (A3) /* call classDispatcher() */
MOVE.L D0,o
RETURN o
ENDIF
ENDPROC NIL